/**
 *
 * @Author 董熠涛
 * @Date 2025/6/16 20:22
 */
package example.springboot.mapper;

import example.springboot.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserMapper {
    /**
     * 根据用户名查询用户
     */
    User findByUsername(@Param("username") String username);

    /**
     * 根据邮箱查询用户
     */
    User findByEmail(@Param("email") String email);

    /**
     * 根据用户ID查询用户
     */
    User findById(@Param("id") Integer id);

    /**
     * 插入新用户
     */
    int insert(User user);

    /**
     * 更新用户信息
     */
    int update(User user);

    /**
     * 根据ID删除用户
     */
    int deleteById(@Param("id") Integer id);

    /**
     * 分页查询用户列表
     */
    List<User> findByPage(@Param("offset") Integer offset, 
                          @Param("size") Integer size, 
                          @Param("search") String search);

    /**
     * 查询用户总数
     */
    Long countUsers(@Param("search") String search);
}

